Computer systems ranging from large-scale mainframe computers to personal desktop computers generally implement various types of peripheral or input/output (I/O) devices. The efficient performance of input and output operations is one of the most critical requirements for computer system design. Contemporary large-scale computer systems typically interface with many different attached peripheral devices such as magnetic disk drives, optical disk drives, magnetic tape drives, cartridge tape libraries, and the like. Information may generally be written to, or read from any of these various types of storage components.
Mass storage capabilities have long been a desirable characteristic of medium and large-scale computing systems. Such systems have the ability to connect to a variety of different types and quantities of I/O devices such as random access and sequential storage devices. Due to the potential for extensive I/O processing required for such systems, a robust yet efficient mechanism must be provided to send output to and receive input from such I/O devices. Prior art systems have employed separate I/O processors to relieve the central processing system from a significant amount of I/O processing tasks. In such prior art systems, I/O requests that were issued from a mainframe computer to an external disk or tape drive were often accomplished via a hardware I/O channel attached to the mainframe. The “test” microcode for the I/O channel was developed via software diagnostic tools which were then executed, and finally the operating system was run.
The I/O component device drivers of prior art systems may be associated with the operating system of the central processing system, where the operating system builds commands to provide to an I/O module to drive the channel. The operating system thus accounts for any physical attributes of the device being accessed. In this type of design configuration, a new channel results in a need for an operating system change. This requires substantial development efforts to introduce new devices and channels into legacy systems.
These and other problems are addressed with the introduction of a commodity I/O module, as described in co-pending application entitled “System And Method For Facilitating Use Of Commodity I/O Components In A Legacy Hardware System,” Ser. No. 10/034,701, assigned to Unisys Corporation, the content of which is incorporated herein by reference. The commodity I/O module overcomes numerous shortcomings of the prior art for purposes of normal I/O operation. However, testing the commodity I/O module via a software diagnostic program using the operating system is inherently complex. Testing the operations and performance of the commodity I/O module via the operating system also lacks flexibility and manageability.
It would therefore be desirable to have a manner of testing such commodity I/O modules that does not require operation through the operating system, and provides greater flexibility and manageability for purposes of debugging, data verification, performance testing and adjustment, etc. The present invention fulfills these and other needs, and offers other advantages over the prior art.